1
수치 선형대수학으로의 전환
MATH004Lesson 9
00:00
수치 선형대수학은 현대 컴퓨팅의 핵심 동력이며, 기호적 수학의 아름다움과 실제 하드웨어 성능 사이의 간극을 메웁니다. 이론적으로는 변환 $T(v) = v + v_0$를 단순한 덧셈으로 보지만, 컴퓨터는 이를 최적화된 행렬 곱셈 파이프라인을 방해하는 요소로 인식합니다. 최고의 속도를 달성하기 위해 우리는 관점을 전환합니다: 공간의 차원을 확장하여 '이동'을 '구조화된 곱셈'으로 바꾸는 것입니다.

1. 덧셈에서 곱셈으로

이론적 프레임워크에서는 선형 변환과 이동(아핀 사상)이 종종 별도로 처리됩니다. 그러나 고성능 라이브러리인 BLAS (기본 선형대수 하위루틴) 은 행렬-벡터 및 행렬-행렬 곱셈에 특별히 최적화되어 있습니다. 이러한 커널을 활용하기 위해 모든 연산을 다음과 같이 표현합니다:

$$T(v) = Av$$

2. 동차 좌표

행렬을 사용하여 $\mathbf{R}^n$ 공간에서 이동을 구현하려면 $\mathbf{R}^{n+1}$로 확장해야 합니다. 벡터 $[x, y, z]^T$는 $[x, y, z, 1]^T$로 변환됩니다. 이 '추가적인 1'은 $(n+1) \times (n+1)$ 행렬의 마지막 열에 이동을 인코딩할 수 있게 해줍니다.

확장된 구조

변환 $v_0 = [t_x, t_y, t_z]^T$는 다음처럼 표현됩니다:

$$A = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

계산의 유지

마지막 행의 숫자 $0, 0, 0, 1$는 중요한 역할을 합니다. $A$가 마지막 성분이 $1$인 벡터와 곱해질 때, 결과로 나오는 마지막 성분은:

$(0 \cdot x) + (0 \cdot y) + (0 \cdot z) + (1 \cdot 1) = 1$

이는 데이터의 '아핀' 성질이 유지되도록 보장하며, 좌표계의 정합성을 잃지 않고 연속적인 연산을 수행할 수 있게 해줍니다.

3. 구현 표준: BLAS

수치 효율성은 표준화된 하위루틴에 의존합니다. BLAS 은 세 가지 수준의 연산을 제공합니다:

  • 레벨 1: 벡터-벡터 연산 (예: 내적).
  • 레벨 2: 행렬-벡터 연산 ($Ax+b$).
  • 레벨 3: 행렬-행렬 연산 ($AB+C$), 이는 가장 계산 밀도가 높고 하드웨어 효율성이 뛰어납니다.
🎯 핵심 원칙
수치 선형대수학은 동차 좌표를 사용하여 다양한 기하학적 연산을 행렬-벡터 곱셈($T(v) = Av$)로 통합합니다. 이를 통해 하드웨어는 최적화된 BLAS 루틴을 사용하여 초당 수백만 번의 연산을 구조적 무결성 유지 상태에서 처리할 수 있습니다.